<?php

class Solicitudes_Model_Cronogramas extends Model_Cna {
	
	private $cronogramasTable;
	
	public function __construct() {
		parent::__construct();
		$this->cronogramaTable = new Solicitudes_Model_DbTable_Cronogramas();
	}
	
	/**
	 * Devuelve un arreglo del listado de actividades de un cronograma
	 * @param integer $codproceso Código del proceso
	 * @return array
	 */
	public function getActividadesCronograma($codproceso) {
//		return $this->cronogramaTable->getActividadesCronograma($codproceso);
		return $this->cronogramaTable->fetchAll("codproceso={$codproceso}");
	}
	/**
	 * Almacena los datos de una actividad
	 * @param array $datos Los datos de la solicitud
	 */
	public function guardarActividad(array $datos) {
		if(isset($datos["codactividad"]) && !empty($datos["codactividad"])) {
			$this->cronogramaTable->find($datos["codactividad"])->current()->setFromArray($datos)->save();
		} else {
		    unset($datos["codactividad"]);
			return $this->cronogramaTable->createRow($datos)->save();
		}
	}
	
	/**
	 * Carga los datos de una actividad
	 * @param integer $codactividad Código del registro
	 * @return Array con los datos de la actividad
	 */
	public function cargarActividad($codactividad){
		return $this->cronogramaTable->find($codactividad)->current()->toArray();
	}

	/**
	 * Elimina una actividad
	 * @param integer $codactividad Código de la actividad
	 */
	public function eliminarActividad($codactividad){
		return $this->cronogramaTable->find($codactividad)->current()->delete();
	}
	
	/**
	 * Almacena los datos del archivo adjunto del crononograma a un proceso
	 * @param array $datos Los datos del registro
	 */
	public function guardarAdjuntoCronograma($datos) {
		$adjuntoTable = new Generales_Model_DbTable_Documentos();
	    $adjuntoTable->getAdapter()->beginTransaction();
		try {
			$key = $adjuntoTable->createRow($datos)->save();
			$SolicitudTable = new Solicitudes_Model_DetalleSolicitud();
			$datos_rel["coddoccronograma"] = $key;
			$datos_rel["codproceso"]  = $datos["codproceso"];
			$SolicitudTable->guardardatosProceso($datos_rel);
			$adjuntoTable->getAdapter()->commit();
		} catch(Exception $e) {
			$adjuntoTable->getAdapter()->rollBack();
			throw $e;
		}
	}
	
}//fin de la clase